package com.ai.mall.controller.front;

import com.ai.mall.entity.ProductsEntity;
import com.ai.mall.entity.UsersEntity;
import com.ai.mall.service.ProductsService;
import com.ai.mall.utils.R;
import com.ai.mall.vo.res.SeckillProductVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/products")
public class ProductController {

    @Autowired
    private ProductsService productService;

    // 根据关键词搜索商品接口
    @GetMapping("/search")
    public R searchProducts(@RequestParam String keyword) {
        // 调用业务逻辑根据关键词搜索商品
        List<ProductsEntity> productList = productService.searchByKeyword(keyword);
        // 返回搜索结果
        return R.ok().put("data", productList);
    }

    // 获取自营手机列表接口
    @GetMapping("/self_operated_phones")
    public R getSelfOperatedPhones() {
        // 调用业务逻辑获取自营手机列表，示例返回空列表
        List<ProductsEntity> productList = productService.getSelfOperatedPhones();
        // 返回搜索结果
        return R.ok().put("data", productList);
    }

    // 获取耳机配件列表接口
    @GetMapping("/earphone_accessories")
    public R getEarphoneAccessories() {
        // 调用业务逻辑获取耳机配件列表，示例返回空列表
        List<ProductsEntity> productList = productService.getEarphoneAccessories();
        // 返回搜索结果
        return R.ok().put("data", productList);
    }

    // 获取平板电脑列表接口
    @GetMapping("/tablets")
    public R getTablets() {
        // 调用业务逻辑获取平板电脑列表，示例返回空列表
        List<ProductsEntity> productList = productService.getTablets();
        // 返回搜索结果
        return R.ok().put("data", productList);
    }

    // 获取秒杀商品列表接口
    @GetMapping("/seckill_products")
    public R getSeckillProducts() {
        // 调用业务逻辑获取秒杀商品列表，示例返回空列表
        List<SeckillProductVO> seckillProducts = productService.getSeckillProducts();
        return R.ok().put("data", seckillProducts);
    }

    // 获取精品推荐商品列表接口
    @GetMapping("/recommended_products")
    public R getRecommendedProducts(HttpSession session) {
        UsersEntity userInfo = (UsersEntity) session.getAttribute("user");
        if (userInfo == null) {
            return R.error(401, "请先登录");
        }
        // 调用业务逻辑获取精品推荐商品列表，示例返回空列表
        List<ProductsEntity> productList = productService.getRecommendedProducts(userInfo);
        // 返回搜索结果
        return R.ok().put("data", productList);
    }

    // 获取商品详情接口
    @GetMapping("/{productId}")
    public Map<String, Object> getProductDetail(@PathVariable String productId) {
        // 调用业务逻辑根据商品ID获取商品详情，示例返回空Map
        return null;
    }
}